iT邦幫忙

30天學習簡易java port scanner相關文章
共有 29 則文章

技術 day30 學習心得

完成了這30天的試煉,回頭看這整個過程,我不只學會了技術細節,更養成了面對真實問題時分析與解決的習慣。一開始的目標很簡單:用純 Java 嘗試掃描指定的 IP...

技術 day29 TCP/IP 堆疊差異

TCP/IP 堆疊的差異是 port scanner 判斷目標「是什麼操作系統 / 裝置 / network middlebox」的主要線索之一。掃描器透過主動...

技術 day28 Port Scanning 基礎知識

1.為什麼要掃描 Port?每個 Port 就像是電腦「門口」不同服務會聽在不同 Port,例如:80 → HTTP (網站)443 → HTTPS (加密網站...

技術 day27 Console Summary 掃描總結報告

今天嘗試把之前的「Port Scanner 專案」加上 Console Summary(掃描總結報告)。掃描完所有的 port,不只是一行一行輸出結果,還會在最...

技術 day26優化 ThreadPool(使用 ExecutorService + bounded queue)

今天我接觸到了一個比較進階的主題:用 ThreadPoolExecutor + Bounded Queue 來優化 Port Scanner。以往我寫的程式都是...

技術 day25 服務辨識基礎

服務辨識 (Service Identification / Service Fingerprinting)在網路安全與滲透測試中,服務辨識指的是:確定目標主機...

技術 day24 觀察 TCP 三次握手

Wireshark基本使用,今天的目標是,觀察 TCP 三次握手 (3-way handshake)。三次握手是電腦之間用 TCP 協定建立連線的基本步驟:Cl...

技術 day23 Wireshark 基本使用

Wireshark:網路封包分析工具(Packet Analyzer)可以監聽網卡,把經過的資料包(Packet)擷取下來用圖形介面顯示 → 讓你看到:誰在跟誰...

技術 day22 介紹Nmap概念與手動/自製掃描結果差異

Nmap 是一個功能完整的網路掃描工具,用於發現主機、掃描 port、辨識服務版本、做 OS 指紋辨識,還有可擴充的 Nmap Scripting Engine...

技術 day21 同步 vs 多執行緒的效能比較

今天要使用 System.nanoTime() 量測程式執行時間,比較同步掃描 和 多執行緒掃描 的效能差異,學會用「數據」而不是「感覺」來判斷程式快或慢 Sy...

技術 day20 把結果匯出成HTML或JSON

JSON (JavaScript Object Notation) = JavaScript 物件標記法。1.是一種資料交換格式(data format),用來...

技術 day19 練習簡單進度條 / CLI 美化

CLI 全名是 Command Line Interface(命令列介面)。 package day1.day1; import java.io.IOExcep...

技術 day18 了解結果收集與同步 (Concurrent Collections)

ConcurrentLinkedQueue:一種「併發安全」的 Queue(佇列),多個執行緒可以同時寫入而不會互相干擾。這樣就不用再加 synchronize...

技術 day17 限制併發、節流與安全性考量

限制併發 (Concurrency Limiting)在 Day16 是用固定大小的執行緒池 (FixedThreadPool) 去同時掃 port。但是如果開...

技術 day16 多執行緒掃描結果的有序排列

昨天練習的輸出結果是沒有序的,因為Java 的多執行緒是非同步(asynchronous)的。每個 Thread 自己跑,主程式不等它。不同的執行緒完成時間不同...

技術 day15 了解執行緒(Multithreading)與競爭條件(Race Condition) 的概念

Race Condition(競爭條件):當多個執行緒(Threads)同時存取或修改同一個共享資源,因為「執行順序不確定」,導致程式結果不可預期的問題。多執行...

技術 day14 命令列參數與互動模式(Command-Line Arguments + Interactive Mode)

命令列參數(Command-line arguments):從 main(String[] args) 取得外部輸入,例如:java Day13Demo loc...

技術 day13 寫入 CSV 的 Port 掃描器

今天將昨天學到的CSV寫入Port 掃描器 package day1;import java.util.Scanner;import java.io.*;imp...

技術 day 12 了解正確處理包含逗號或雙引號的欄位(CSV escape)

.csv 全名是 Comma-Separated Values(逗號分隔值)簡單來說,它是一種文字檔的表格格式,每一行是一筆資料,每一個欄位用「逗號 ,」隔開,...

技術 day 11 「讀取使用者輸入」,用 Scanner 讀取 host 和 port

Scanner 是 Java 內建的輸入工具,用來讀取使用者輸入。 String host = readHost(scanner);int[] range =...

技術 day10 try-with-resources(確保 Socket 自動關閉)

try-with-resources形式是 try (Resource r = ...) { ... },編譯器會自動在區塊結束時呼叫 r.close()。任何...

技術 day9 IOException 與子類別

在前面day6有稍微提到IOException,今天在做多一點的延伸學習回顧一下IO 是 Input / Output 的縮寫,意思是:輸入(Input)與輸出...

技術 day8 多執行緒 + Socket Server(每個 Client 開一條 Thread)

執行緒(Thread)是在程式裡同時做多件事的最小單位。單執行緒 vs 多執行緒--單執行緒,一次只能做一件事 --多執行緒,多件事同時進行執行緒 = 讓程式「...

技術 day7 Java I/O & Socket 概念

Socket(通訊端)是網路中「電腦對電腦」溝通的基礎機制。簡單來說:Client(客戶端):主動連線的一方Server(伺服器):等待連線的一方通訊使用 IP...

技術 day6 Enum + Exception Handling

Enum(列舉型別)用途:定義一組固定常數值,讓程式更清楚且安全。不用靠數字或字串表示狀態,程式更安全。避免拼字錯誤或使用無效值。 Exception(例外)例...

技術 Day 5:Class & Object(類別與物件)

1 類別(Class):類別是「模板/藍圖」,用來描述一種物件的屬性和行為。屬性 → 變數(fields)行為 → 方法(methods)2 物件(Object...

技術 day4 函數方法、傳參、回傳值

函數方法定義public static int square(int num)這是一個「平方函數」,接收一個整數 num 作為參數,回傳它的平方。public...

技術 day2 條件判斷(if/else) 和 迴圈(for / while)

day21 if / else 的語法與用途(條件分支)2 for 與 while 迴圈來重複執行工作3 把使用者輸入的 startPort、endPort 做...

技術 day3 把「列出 ports」變成真正的「檢查 port 是否開啟」。

day3今天學到1 學習網路基礎:使用 Socket 做 TCP 連線嘗試,理解 OPEN/CLOSED/TIMEOUT 的差別。2 對實務有用:系統管理、資安...